Navigation system with map matching mechanism and method of operation thereof

ABSTRACT

A method of operation of a navigation system includes: receiving a current position for locating a device; adding a new edge from a road topology map to a topological tree based on the current position; removing an old edge from the topological tree based on the current position; determining a matched edge of the topological tree based on the current position and the topological tree; and calculating an adjusted location based on the matched edge for displaying on the device.

TECHNICAL FIELD

The present invention relates generally to a navigation system, and moreparticularly to a navigation system with map matching mechanism.

BACKGROUND ART

Modern portable consumer and industrial electronics, especially clientdevices such as navigation systems, cellular phones, portable digitalassistants, and combination devices, are providing increasing levels offunctionality to support modern life including location-basedinformation services. Research and development in the existingtechnologies can take a myriad of different directions.

As users become more empowered with the growth of mobile location basedservice devices, new and old paradigms begin to take advantage of thisnew device space. There are many technological solutions to takeadvantage of this new device location opportunity. One existing approachis to use location information to provide navigation services such as aglobal positioning system (GPS) for a car or on a mobile device such asa cell phone, portable navigation device (PND) or a personal digitalassistant (PDA).

Location based services allow users to create, transfer, store, and/orconsume information in order for users to create, transfer, store, andconsume in the “real world”. One such use of location based services isto efficiently transfer or route users to the desired destination orservice.

Navigation systems and location based services enabled systems have beenincorporated in automobiles, notebooks, handheld devices, and otherportable products. Today, these systems aid users by incorporatingavailable, real-time relevant information, such as maps, directions,local businesses, or other points of interest (POI). The real-timeinformation provides invaluable relevant information. However, theaccuracy of the location based routing systems continues to challengecommercial applicability of these systems.

Thus, a need still remains for a navigation system with map matchingmechanism to identify the true location of a mobile device. In view ofthe ever-increasing commercial competitive pressures, along with growingconsumer expectations and the diminishing opportunities for meaningfulproduct differentiation in the marketplace, it is increasingly criticalthat answers be found to these problems. Additionally, the need toreduce costs, improve efficiencies and performance, and meet competitivepressures adds an even greater urgency to the critical necessity forfinding answers to these problems.

Solutions to these problems have been long sought but prior developmentshave not taught or suggested any solutions and, thus, solutions to theseproblems have long eluded those skilled in the art.

DISCLOSURE OF THE INVENTION

The present invention provides a method of operation of a navigationsystem including: receiving a current position for locating a device;adding a new edge from a road topology map to a topological tree basedon the current position; removing an old edge from the topological treebased on the current position; determining a matched edge of thetopological tree based on the current position and the topological tree;and calculating an adjusted location based on the matched edge fordisplaying on the device.

The present invention provides a navigation system including: a positionmodule for receiving a current position for locating a device; an expandmodule, coupled to the position module, for adding a new edge from aroad topology map to a topological tree based on the current position; aremove module, coupled to the expand module, for removing an old edgefrom the topological tree based on the current position; a match module,coupled to the remove module, for determining a matched edge of thetopological tree based on the current position and the topological tree;and a display module, coupled to the match module, for calculating anadjusted location based on the matched edge for displaying on thedevice.

Certain embodiments of the invention have other steps or elements inaddition to or in place of those mentioned above. The steps or elementwill become apparent to those skilled in the art from a reading of thefollowing detailed description when taken with reference to theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a navigation system with map matching mechanism in anembodiment of the present invention.

FIG. 2 is an exemplary block diagram of the navigation system of FIG. 1.

FIG. 3 is an example of a road topology map for a segment of a road formap matching the location of the first device of FIG. 1 by thenavigation system of FIG. 1.

FIG. 4 is an example of a topological tree generated by the navigationsystem based on positions of the first device of FIG. 1.

FIG. 5 is an example of the topological tree during an updating stage ofoperation of the navigation system.

FIG. 6A is an example of an edge scoring stage of operation of thenavigation system.

FIG. 6B is another example of the edge scoring stage of operation of thenavigation system.

FIG. 7 is an example of the topological tree in a connectivity scoringstage of operation of the navigation system.

FIG. 8 is an example of the topological tree in a reachability scoringstage of operation of the navigation system.

FIG. 9 is an example of a display for the navigation system of FIG. 1.

FIG. 10 is a control flow of the navigation system.

FIG. 11 is a specific example of a decision flow describing thenavigation system of FIG. 1.

FIG. 12 is a flow chart of a method of operation of the navigationsystem of FIG. 1 in a further embodiment of the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

The following embodiments are described in sufficient detail to enablethose skilled in the art to make and use the invention. It is to beunderstood that other embodiments would be evident based on the presentdisclosure, and that system, process, or mechanical changes may be madewithout departing from the scope of the present invention.

In the following description, numerous specific details are given toprovide a thorough understanding of the invention. However, it will beapparent that the invention may be practiced without these specificdetails. In order to avoid obscuring the present invention, somewell-known circuits, system configurations, and process steps are notdisclosed in detail.

The drawings showing embodiments of the system are semi-diagrammatic andnot to scale and, particularly, some of the dimensions are for theclarity of presentation and are shown exaggerated in the drawing FIGs.Similarly, although the views in the drawings for ease of descriptiongenerally show similar orientations, this depiction in the FIGs. isarbitrary for the most part. Generally, the invention can be operated inany orientation. The embodiments have been numbered first embodiment,second embodiment, etc. as a matter of descriptive convenience and arenot intended to have any other significance or provide limitations forthe present invention.

One skilled in the art would appreciate that the format with whichnavigation information is expressed is not critical to some embodimentsof the invention. For example, in some embodiments, navigationinformation is presented in the format of (X, Y), where X and Y are twoordinates that define the geographic location, i.e., a position of auser.

In an alternative embodiment, navigation information is presented bylongitude and latitude related information. In a further embodiment ofthe present invention, the navigation information also includes avelocity element including a speed component and a heading component.

The term “relevant information” referred to herein comprises thenavigation information described as well as information relating topoints of interest to the user, such as local business, hours ofbusinesses, types of businesses, advertised specials, trafficinformation, maps, local events, and nearby community or personalinformation.

The term “module” referred to herein can include software, hardware, ora combination thereof in accordance with the context in which the termis used. For example, the software can be machine code, firmware,embedded code, and application software. Also for example, the hardwarecan be circuitry, processor, computer, integrated circuit, integratedcircuit cores, a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), passive devices, or a combinationthereof.

Referring now to FIG. 1, therein is shown a navigation system with mapmatching mechanism 100 in an embodiment of the present invention. Thenavigation system 100 includes a first device 106, such as a client or aserver, connected to a second device 108, such as a client or server,with a communication path 110, such as a wireless or wired network.

For example, the first device 106 can be of any of a variety of mobiledevices, such as a cellular phone, personal digital assistant, anotebook computer, automotive telematic navigation system, or othermulti-functional mobile communication or entertainment device. The firstdevice 106 can be a standalone device, or can be incorporated with avehicle, for example a car, truck, bus, or train. The first device 106can couple to the communication path 110 to communicate with the seconddevice 108.

For illustrative purposes, the navigation system 100 is described withthe first device 106 as a mobile computing device, although it isunderstood that the first device 106 can be different types of computingdevices. For example, the first device 106 can also be a non-mobilecomputing device, such as a server, a server farm, or a desktopcomputer.

The second device 108 can be any of a variety of centralized ordecentralized computing devices. For example, the second device 108 canbe a computer, grid computing resources, a virtualized computerresource, cloud computing resource, routers, switches, peer-to-peerdistributed computing devices, or a combination thereof.

The second device 108 can be centralized in a single computer room,distributed across different rooms, distributed across differentgeographical locations, embedded within a telecommunications network.The second device 108 can have a means for coupling with thecommunication path 110 to communicate with the first device 106. Thesecond device 108 can also be a client type device as described for thefirst device 106.

In another example, the first device 106 can be a particularizedmachine, such as a mainframe, a server, a cluster server, rack mountedserver, or a blade server, or as more specific examples, an IBM Systemz10™ Business Class mainframe or a HP ProLiant ML™ server. Yet anotherexample, the second device 108 can be a particularized machine, such asa portable computing device, a thin client, a notebook, a netbook, asmartphone, personal digital assistant, or a cellular phone, and asspecific examples, an Apple iPhone™, Palm Centro™, or Moto Q Global™.

For illustrative purposes, the navigation system 100 is described withthe second device 108 as a non-mobile computing device, although it isunderstood that the second device 108 can be different types ofcomputing devices. For example, the second device 108 can also be amobile computing device, such as notebook computer, another clientdevice, or a different type of client device. The second device 108 canbe a standalone device, or can be incorporated with a vehicle, forexample a car, truck, bus, or train.

Also for illustrative purposes, the navigation system 100 is shown withthe second device 108 and the first device 106 as end points of thecommunication path 110, although it is understood that the navigationsystem 100 can have a different partition between the first device 106,the second device 108, and the communication path 110. For example, thefirst device 106, the second device 108, or a combination thereof canalso function as part of the communication path 110.

The communication path 110 can be a variety of networks. For example,the communication path 110 can include wireless communication, wiredcommunication, optical, ultrasonic, or the combination thereof.Satellite communication, cellular communication, Bluetooth, InfraredData Association standard (IrDA), wireless fidelity (WiFi), andworldwide interoperability for microwave access (WiMAX) are examples ofwireless communication that can be included in the communication path110. Ethernet, digital subscriber line (DSL), fiber to the home (FTTH),and plain old telephone service (POTS) are examples of wiredcommunication that can be included in the communication path 110.

Further, the communication path 110 can traverse a number of networktopologies and distances. For example, the communication path 110 caninclude direct connection, personal area network (PAN), local areanetwork (LAN), metropolitan area network (MAN), wide area network (WAN)or any combination thereof.

Referring now to FIG. 2, therein is shown an exemplary block diagram ofthe navigation system 100 of FIG. 1. The navigation system 100 caninclude the first device 106, the communication path 110, and the seconddevice 108. The first device 106 can send information in a first devicetransmission 202 over the communication path 110 to the second device108. The second device 108 can send information in a second devicetransmission 204 over the communication path 110 to the first device106.

For illustrative purposes, the navigation system 100 is shown with thefirst device 106 as a client device, although it is understood that thenavigation system 100 can have the first device 106 as a different typeof device. For example, the first device 106 can be a server.

Also for illustrative purposes, the navigation system 100 is shown withthe second device 108 as a server, although it is understood that thenavigation system 100 can have the second device 108 as a different typeof device. For example, the second device 108 can be a client device.

For brevity of description in this embodiment of the present invention,the first device 106 will be described as a client device and the seconddevice 108 will be described as a server device. The present inventionis not limited to this selection for the type of devices. The selectionis an example of the present invention.

The first device 106 can include a first control unit 206, a firststorage unit 208, a first communication unit 210, a first user interface212, and a location unit 214. The first control unit 206 can include afirst control interface 216. The first control unit 206 can execute afirst software 218 to provide the intelligence of the navigation system100. The first control unit 206 can be implemented in a number ofdifferent manners. For example, the first control unit 206 can be aprocessor, an embedded processor, a microprocessor, a hardware controllogic, a hardware finite state machine (FSM), a digital signal processor(DSP), or a combination thereof. The first control interface 216 can beused for communication between the first control unit 206 and otherfunctional units in the first device 106. The first control interface216 can also be used for communication that is external to the firstdevice 106.

The first control interface 216 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the first device 106.

The first control interface 216 can be implemented in different ways andcan include different implementations depending on which functionalunits or external units are being interfaced with the first controlinterface 216. For example, the first control interface 216 can beimplemented with a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), optical circuitry, waveguides,wireless circuitry, wireline circuitry, or a combination thereof.

The location unit 214 can generate location information, currentheading, and current speed of the first device 106, as examples. Thelocation unit 214 can be implemented in many ways. For example, thelocation unit 214 can function as at least a part of a globalpositioning system (GPS), an inertial navigation system, acellular-tower location system, a pressure location system, or anycombination thereof.

The location unit 214 can include a location interface 220. The locationinterface 220 can be used for communication between the location unit214 and other functional units in the first device 106. The locationinterface 220 can also be used for communication that is external to thefirst device 106.

The location interface 220 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the first device 106.

The location interface 220 can include different implementationsdepending on which functional units or external units are beinginterfaced with the location unit 214. The location interface 220 can beimplemented with technologies and techniques similar to theimplementation of the first control interface 216.

The first storage unit 208 can store the first software 218. The firststorage unit 208 can also store the relevant information, such asadvertisements, points of interest (POI), navigation routing entries, orany combination thereof.

The first storage unit 208 can be a volatile memory, a nonvolatilememory, an internal memory, an external memory, or a combinationthereof. For example, the first storage unit 208 can be a nonvolatilestorage such as non-volatile random access memory (NVRAM), Flash memory,disk storage, or a volatile storage such as static random access memory(SRAM).

The first storage unit 208 can include a first storage interface 222.The first storage interface 222 can be used for communication betweenthe first storage unit 208 and other functional units in the firstdevice 106. The first storage interface 222 can be used forcommunication that is external to the first device 106.

The first storage interface 222 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the first device 106.

The first storage interface 222 can include different implementationsdepending on which functional units or external units are beinginterfaced with the first storage unit 208. The first storage interface222 can be implemented with technologies and techniques similar to theimplementation of the first control interface 216.

The first communication unit 210 can enable external communication toand from the first device 106. For example, the first communication unit210 can permit the first device 106 to communicate with the seconddevice 108 of FIG. 1, such as a peripheral device or a computer desktop,and the communication path 110.

The first communication unit 210 can also function as a communicationhub allowing the first device 106 to function as part of thecommunication path 110 and not limited to be an end point or terminalunit to the communication path 110. The first communication unit 210 caninclude active and passive components, such as microelectronics or anantenna, for interaction with the communication path 110.

The first communication unit 210 can include a first communicationinterface 224. The first communication interface 224 can be used forcommunication between the first communication unit 210 and otherfunctional units in the first device 106. The first communicationinterface 224 can receive information from the other functional units orcan transmit information to the other functional units.

The first communication interface 224 can include differentimplementations depending on which functional units are being interfacedwith the first communication unit 210. The first communication interface224 can be implemented with technologies and techniques similar to theimplementation of the first control interface 216.

The first user interface 212 allows a user (not shown) to interface andinteract with the first device 106. The first user interface 212 caninclude an input device and an output device. Examples of the inputdevice of the first user interface 212 can include a keypad, a touchpad,soft-keys, a keyboard, a microphone, or any combination thereof toprovide data and communication inputs.

The first user interface 212 can include a first display interface 226.The first display interface 226 can include a display, a projector, avideo screen, a speaker, or any combination thereof.

The first control unit 206 can operate the first user interface 212 todisplay information generated by the navigation system 100. The firstcontrol unit 206 can also execute the first software 218 for the otherfunctions of the navigation system 100, including receiving locationinformation from the location unit 214. The first control unit 206 canfurther execute the first software 218 for interaction with thecommunication path 110 via the first communication unit 210.

The second device 108 can be optimized for implementing the presentinvention in a multiple device embodiment with the first device 106. Thesecond device 108 can provide the additional or higher performanceprocessing power compared to the first device 106. The second device 108can include a second control unit 228, a second communication unit 230,and a second user interface 232.

The second user interface 232 allows a user (not shown) to interface andinteract with the second device 108. The second user interface 232 caninclude an input device and an output device. Examples of the inputdevice of the second user interface 232 can include a keypad, atouchpad, soft-keys, a keyboard, a microphone, or any combinationthereof to provide data and communication inputs. Examples of the outputdevice of the second user interface 232 can include a second displayinterface 234. The second display interface 234 can include a display, aprojector, a video screen, a speaker, or any combination thereof.

The second control unit 228 can execute a second software 236 to providethe intelligence of the second device 108 of the navigation system 100.The second software 236 can operate in conjunction with the firstsoftware 218. The second control unit 228 can provide additionalperformance compared to the first control unit 206.

The second control unit 228 can operate the second user interface 232 todisplay information. The second control unit 228 can also execute thesecond software 236 for the other functions of the navigation system100, including operating the second communication unit 230 tocommunicate with the first device 106 over the communication path 110.

The second control unit 228 can be implemented in a number of differentmanners. For example, the second control unit 228 can be a processor, anembedded processor, a microprocessor, a hardware control logic, ahardware finite state machine (FSM), a digital signal processor (DSP),or a combination thereof.

The second control unit 228 can include a second control interface 238.The second control interface 238 can be used for communication betweenthe second control unit 228 and other functional units in the seconddevice 108. The second control interface 238 can also be used forcommunication that is external to the second device 108.

The second control interface 238 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the second device 108.

The second control interface 238 can be implemented in different waysand can include different implementations depending on which functionalunits or external units are being interfaced with the second controlinterface 238. For example, the second control interface 238 can beimplemented with a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), optical circuitry, waveguides,wireless circuitry, wireline circuitry, or a combination thereof.

A second storage unit 240 can store the second software 236. The secondstorage unit 240 can also store the relevant information, such asadvertisements, points of interest (POI), navigation routing entries, orany combination thereof. The second storage unit 240 can be sized toprovide the additional storage capacity to supplement the first storageunit 208.

For illustrative purposes, the second storage unit 240 is shown as asingle element, although it is understood that the second storage unit240 can be a distribution of storage elements. Also for illustrativepurposes, the navigation system 100 is shown with the second storageunit 240 as a single hierarchy storage system, although it is understoodthat the navigation system 100 can have the second storage unit 240 in adifferent configuration. For example, the second storage unit 240 can beformed with different storage technologies forming a memory hierarchalsystem including different levels of caching, main memory, rotatingmedia, or off-line storage.

The second storage unit 240 can be a volatile memory, a nonvolatilememory, an internal memory, an external memory, or a combinationthereof. For example, the second storage unit 240 can be a nonvolatilestorage such as non-volatile random access memory (NVRAM), Flash memory,disk storage, or a volatile storage such as static random access memory(SRAM).

The second storage unit 240 can include a second storage interface 242.The second storage interface 242 can be used for communication betweenthe second storage unit 240 and other functional units in the seconddevice 108. The second storage interface 242 can be used forcommunication that is external to the second device 108.

The second storage interface 242 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsphysically separate from the second device 108.

The second storage interface 242 can include different implementationsdepending on which functional units or external units are beinginterfaced with the second storage unit 240. The second storageinterface 242 can be implemented with technologies and techniquessimilar to the implementation of the second control interface 238.

The second communication unit 230 can enable external communication toand from the second device 108. For example, the second communicationunit 230 can permit the second device 108 to communicate with the firstdevice 106 over the communication path 110.

The second communication unit 230 can also function as a communicationhub allowing the second device 108 to function as part of thecommunication path 110 and not limited to be an end point or terminalunit to the communication path 110. The second communication unit 230can include active and passive components, such as microelectronics oran antenna, for interaction with the communication path 110.

The second communication unit 230 can include a second communicationinterface 244. The second communication interface 244 can be used forcommunication between the second communication unit 230 and otherfunctional units in the second device 108. The second communicationinterface 244 can receive information from the other functional units orcan transmit information to the other functional units.

The second communication interface 244 can include differentimplementations depending on which functional units are being interfacedwith the second communication unit 230. The second communicationinterface 244 can be implemented with technologies and techniquessimilar to the implementation of the second control interface 238.

The first communication unit 210 can couple with the communication path110 to send information to the second device 108 in the first devicetransmission 202. The second device 108 can receive information in thesecond communication unit 230 from the first device transmission 202 ofthe communication path 110.

The second communication unit 230 can couple with the communication path110 to send information to the first device 106 in the second devicetransmission 204. The first device 106 can receive information in thefirst communication unit 210 from the second device transmission 204 ofthe communication path 110. The navigation system 100 can be executed bythe first control unit 206, the second control unit 228, or acombination thereof.

For illustrative purposes, the second device 108 is shown with thepartition having the second user interface 232, the second storage unit240, the second control unit 228, and the second communication unit 230,although it is understood that the second device 108 can have adifferent partition. For example, the second software 236 can bepartitioned differently such that some or all of its function can be inthe second control unit 228 and the second communication unit 230. Also,the second device 108 can include other functional units not shown inFIG. 2 for clarity.

The functional units in the first device 106 can work individually andindependently of the other functional units. The first device 106 canwork individually and independently from the second device 108 and thecommunication path 110.

The functional units in the second device 108 can work individually andindependently of the other functional units. The second device 108 canwork individually and independently from the first device 106 and thecommunication path 110.

For illustrative purposes, the navigation system 100 is described byoperation of the first device 106 and the second device 108. It isunderstood that the first device 106 and the second device 108 canoperate any of the modules and functions of the navigation system 100.For example, the first device 106 is described to operate the locationunit 214, although it is understood that the second device 108 can alsooperate the location unit 214.

Referring now to FIG. 3, therein is shown an example of a road topologymap 302 for a segment of a road 306 for map matching the location of thefirst device 106 of FIG. 1 by the navigation system 100 of FIG. 1. Theroad topology map 302 is defined as a graph of interconnected anddirectional edges corresponding to segments of real-world vehiclepathways. For example, these real-world vehicle pathways can includeroads, highways, waterways, airways, or a combination thereof. The roadtopology map 302 can include a layout of interconnections of variousedges and links of a vehicle pathway network.

The road topology map 302 includes edges 308. The edges 308 are definedas topological vectors, straight or curved, corresponding to a portionof the segment of the road 306. The edges 308 can include shape points310. The shape points 310 can be used to show the connections betweenthe edges 308. The shape points 310 are defined as spaced apartlocations on each of the edges 308.

The segment of the road 306 is composed of one or more of the edges 308depending on the shape of the road 306. Each of the edges 308 providesthe shape points 310, and information regarding how the edge connects toother edges.

Each of the edges 308 has an edge heading 312, represented by theillustrated arrow. The edge heading 312 is defined as an angle from areference direction to the direction of an edge. The reference directionis system parameter picked so that all heading angles within thenavigation system 100 are represented as a deviation from that referencedirection. For example, the reference direction can be defined asmagnetic north, true north, or true east. For an edge that is curved,the edge heading 312 can be the direction of the edge at the end of theedge. Each of the edges 308 has at least two of the shape points 310.When one of the edges 308 has more than two of the shape points 310,then there is more than one possible value for the edge heading 312, onefor each pair of consecutive shape points.

It has been discovered that the road topology map 302 having the edges308 with the shape points 310 provides the navigation system 100 of FIG.1 with more relevant information for a safer operation of a vehicle.With the road topology map 302 having the edges 308 with the shapepoints 310, the navigation system 100 can accurately predict the headingand position information of points on the edges 308. Accurate estimationof the edge heading 312 and other geometric information of the edges 308allows for accurate positioning of a vehicle using the navigation system100. As a result, the road topology map 302 having the edges 308 withthe shape points 310 can aid the user of safer operation of the vehicleby having accurate vehicle position data.

Referring now to FIG. 4, therein is shown an example of a topologicaltree 402 generated by the navigation system 100 based on positions 404of the first device 106 of FIG. 1. The positions 404 are defined aspreviously recorded locations of the first device 106 observed by thelocation unit 214 of FIG. 2. The topological tree 402 is defined as ahierarchical structure where each node in the hierarchical structurerepresents an edge in the road topology map 302 of FIG. 3.

The topological tree 402 can be updated dynamically as the positions 404of the first device 106 are updated using the location unit 214. Thetopological tree 402 can function as a structure to support matching thepositions 404 to the edges 308 of FIG. 3 in the road topology map 302.The topological tree 402 can be generated only when the first device 106is powered on or when the first device 106 starts to move. The roadtopology map 302 on the other hand can be updated less frequently, andcan include the edges 308 that are not proximate to the current locationof the first device 106.

The topological tree 402 can include a root edge 406 with leaf edges andbranch edges going outwards from the root edge 406. The root edge 406 isdefined as the first edge of the topological tree 402 from which otheredges originate, and also represents where the first device 106 wasinitially located when the topological tree 402 was created.

In this figure, the topological tree 402 is shown with the root edge406, connected to a last matched edge 408. The last matched edge 408 isdefined as an edge on the topological tree 402 most recently determinedto be where the first device 106 is. The positions 404 of the firstdevice 106 are tracked by the location unit 214 for the purpose of mapmatching. In this example, the last matched edge 408 corresponds to acurrent position 410. The current position 410 is defined as the lastreceived instance of the positions 404. The current position 410 can bedetermined by the location unit 214.

During an initialization stage of the navigation system 100, thetopological tree 402 can be expanded along the root edge 406 untilreaching a border of a termination condition 412. The initializationstage can function to create the topological tree 402 from scratch byaccessing the road topological map 302. The root edge 406 can beselected from the edges 308 on the road topological map 302 that isspatially closest to the current position 410. Other methods ofselecting the root edge 406 are described later. More of the edges 308can be added to the topological tree 402 that originate from the rootedge 406.

The termination condition 412 is defined as an area bounded by ageometric shape around the current position 410 beyond which new edgescannot be added to the topological tree 402. For example, thetermination condition 412 can be bounded by a circle range with a radiusequal to a locator error range 414. The size, shape, or radius of thetermination condition 412 can vary depending on the complexity of theroad topology map 302, such as a density of edges in the road topologymap 302 near the current position 410. New edges can be added to thetopological tree 402 and old edges can be removed from the topologicaltree 402 as shown in FIG. 5.

The locator error range 414 is defined as a distance from a reportedposition of the location unit 214 beyond which is pre-determined to beunlikely where the actual position of the location unit 214 lies giventhe technical specification of the location unit 214. For example, thelocator error range 414 can be 100 meters or 80 meters.

To initiate map matching, the navigation system 100 can first initializethe topological tree 402. As a specific example, the following are thesteps to initialize the topological tree 402. The root edge 406 isdetermined by using the positions 404 and the road topology map 302 tofind one edge representing where the first device 106 is located. Everyedge within a pre-determined distance from the current position 410 isscored in a scoring stage of the navigation system 100 as describedbelow. The edge with the lowest score is determined to be the root edge406. This edge can have a heading that is the average of the headings ofvectors between the positions 404. The edge with the lowest score canalso be the edge spatially closest to the current position 410 duringthe initialization stage. Any of the edges 308 within the terminationcondition 412, which is connected to the root edge 406, is added to thetopological tree 402.

Referring now to FIG. 5, therein is shown an example of the topologicaltree 402 during an updating stage of operation of the navigation system100. During the updating stage of operation, new edges 502 arerecursively added to the proper parent edges in the topological tree402, and old edges 504 are removed, both adding and removing based onconnectivity. The topological tree 402 can be updated in differentfrequencies. For example, the topological tree 402 can be updatedaccording to the speed of travel of the first device 106 of FIG. 1.

When the first device 106 move forward, such as when the first device106 is in a moving vehicle, the new edges 502 are added to thetopological tree 402. Any of the edges 308 of FIG. 3 connected to theroot edge 406 within the termination condition 412, can be added to thetopological tree 402. The new edges 502 can be added based on a densityof the edges 308 in the road topology map 302 of FIG. 3 near the currentposition 410, such as the density of the edges 308 in the road topologymap 302 within the locator error range 414 of the current position 410.For example, the termination condition 412 can be expanded when thedensity of the edges 308 in the road topology map 302 near the currentposition 410 is higher. The termination condition 412 can be shrunk whenthe density of the edges 308 in the road topology map 302 near thecurrent position 410 is higher.

The navigation system 100 can remove the old edges 504 when the oldedges 504 are identified as invalid. For example, when the old edges 504are outside of the termination condition 412, and none of its descendantedges are within the termination condition 412, the old edges 504 areremoved. When the root edge 406 is one of the old edges 504 removed, itcan be updated and reset by another edge, such as a child edge of theroot edge 406 within the termination condition 412 or a sibling edge ofthe edge removed.

It has been discovered updating the topological tree 402 in real-timedynamically makes the navigation system 100 more robust even when thelocation unit 214 of FIG. 2 is unreliable, failing, or in error.Unreliability can stem from weak signal, interference, or signalblocking structures. When the location unit 214 is unreliable, failingor in error, the positions 404 received have to be adjusted in order tobe accurate. Updating the topological tree 402 in real-time allows foreven more accurate map matching based on selecting additional relevantinformation from the topological tree 402, such as the locations andheadings of the edges 308 or the connectivity and reachability of theedges 308. Accurate map matching is an essentially criterion of a robustnavigation system, and thus updating the topological tree 402dynamically makes the navigation system 100 more robust.

Referring now to FIGS. 6A and 6B, therein are shown examples of an edgescoring stage of operation of the navigation system 100. The purpose ofthe edge scoring stage of operation of the navigation system 100 is toselect an edge having the highest probability to be where the firstdevice 106 of FIG. 1 is located compared to other edges in thetopological tree 402 of FIG. 4. The scoring stage can be used todetermine the actual position and status of the location unit 214 ofFIG. 2. For example, if the first device 106 is used to track a vehicle,the scoring stage can be used to determine if the vehicle is on track,on road, off road, and etc. “On track”, “on road”, “off road”, or “offtrack” can be examples of the status of the first device 106 generatedby the navigation system 100.

A device heading 602, the current position 410, and a device speed 604can be used to calculate an edge score 606 of a target edge 608 in thetopological tree 402. The edge score 606 of the target edge 608 isdefined as a numeric value based on the probability that the actuallocation of the first device 106 is on the target edge 608. The targetedge 608 is defined as one candidate in the edges 308 of FIG. 3 of thetopological tree 402 that can potentially be where the first device 106is located at currently.

The device heading 602 is defined as the direction of where the firstdevice 106 is moving in reference to the reference direction. The deviceheading 602 can be calculated by the angle of a vector between any twoof the positions 404 of FIG. 4 returned by the location unit 214. Thedevice speed 604 is defined as an estimate of the velocity that thefirst device 106 is traveling. The device speed 604 can be calculated bythe magnitude of a vector between any two of the positions 404 returnedby the location unit 214 divided by the time lapse therebetween. Thedevice speed 604 can also be calculated by averaging a number of themagnitudes of vectors between consecutive pairs of the positions 404divided by the time lapse therebetween the pair. The averaging can becalculated within a pre-determined number of the positions 404.

The edge score 606 can be calculated based on position and heading. Whenthere are more than two of the shape points 310 on the target edge 608,a shape line 610 can be selected to be used for calculating a separationdistance 612 and the difference between the edge heading 312 and thedevice heading 602. The shape line 610 is defined as the line segmentbetween two of the shape points 310.

The separation distance 612 is defined as either: (1) the perpendiculardistance from the current position 410 to the shape line 610 of thetarget edge 608, as shown in FIG. 6A or (2) if the intersection point isout of the target edge 608, then the shortest distance between thecurrent position 410 and the shape line 610 as shown in FIG. 6B. Theedge heading 312 is the angular portion of the vector between the endsof the shape line 610.

An instance of the shape line 610 is preferred over another by having alower value of the separation distance 612 plus the difference betweenthe edge heading 312 and the device heading 602. The shape line 610having the lowest value is selected for calculating the edge score 606.Hence, the edge heading 312 and the separation distance 612 of the shapeline 610 can be used as the edge heading 312 and the separation distance612 of the target edge 608.

The edge score 606 can be calculated based on position such that aposition score 614 is calculated based on the separation distance 612and a distance threshold 616. The position score 614 is defined as asubcomponent of the edge score 606 that is based on location of thetarget edge 608. The distance threshold 616 is defined as apre-determined threshold value in a unit of distance.

The edge score 606 can also be based on heading such that a headingscore 618 is calculated based on the difference between the deviceheading 602, the edge heading 312, and an angle threshold 620. Theheading score 618 is defined as a subcomponent of the edge score 606that is based on the edge heading 312 of the target edge 608. The anglethreshold 620 is defined as a pre-determined threshold value in a unitof angle. Both the angle threshold 620 and the distance threshold 616can be inputted into the first device 106 or the second device 108 ofFIG. 1 via the first user interface 212 of FIG. 2 or the second userinterface 232 of FIG. 2.

As a specific example, the following can be an example of a scoringscheme of the navigation system 100. For the separation distance 612less than the distance threshold 616, the position score 614 can be 0.Else if not, for the separation distance 612 less than five times thedistance threshold 616, the position score 614 can be increased by 1.Else if not, for the separation distance 612 less than eight times thedistance threshold 616, the position score 614 can be increased by 2.Else if not, for the separation distance 612 less than sixteen times thedistance threshold 616, the position score 614 can be increased by 3. Inthis example, the higher the position score 614 is, the lower theprobability that the target edge 608 falls on the actual location of thefirst device 106.

As another specific example, the following can be an example of ascoring scheme for the navigation system 100. For the difference betweenthe device heading 602 and the edge heading 312 less than the anglethreshold 620, the heading score 618 can be 0. Else if not, for thedifference between the device heading 602 and the edge heading 312 lessthan two times the angle threshold 620, the heading score 618 can beincreased by 1. Else if not, for the difference between the deviceheading 602 and the edge heading 312 less than three times the anglethreshold 620, the heading score 618 can be increased by 3. Else if not,for the difference between the device heading 602 and the edge heading312 less than four times the angle threshold 620, the heading score 618can be increased by 5. In this example, the higher the heading score 618is, the lower the probability that the target edge 608 falls on theactual location of the first device 106.

The above two specific examples can be exemplified by the followingpseudo code, where SCORE_(pd) represents the position score 614 andSCORE_(h) represents the heading score 618:

If D₁ < positionThreshold, SCORE_(pd) = 0; If D₁ >= positionThresholdand D₁ < positionThreshold*5, SCORE_(pd) = SCORE_(pd) +1; If D₁ >=positionThreshold*5 and D₁ < positionThreshold*8, SCORE_(pd) =SCORE_(pd) +2; If D₁ >= positionThreshold*8 and D₁ <positionThreshold*16, SCORE_(pd) = SCORE_(pd) +3; If D₁ >=positionThreshold*16, SCORE_(pd) = SCORE_(pd) +4; If α₁ <headingThreshold, SCORE_(h) = 0; If α₁ >= headingThreshold and α₁ <headingThreshold*2, SCORE_(h) = SCORE_(h) +1; If α₁ >=headingThreshold*2 and α₁ < headingThreshold*3, SCORE_(h) = SCORE_(h)+3; If α₁ >= headingThreshold*3 and α₁ < headingThreshold*4, SCORE_(h) =SCORE_(h) +5; If α₁ >= headingThreshold*4, SCORE_(h) = SCORE_(h) +7;

Referring now to FIG. 7, therein is shown an example of the topologicaltree 402 in a connectivity scoring stage of operation of the navigationsystem 100. The edge score 606 of FIG. 6A based on connectivity canincrease depending on the number of interposing edges between the targetedge 608 of FIG. 6A and the last matched edge 408. A connectivity score702 is defined as a subcomponent of the edge score 606 that is based onconnectivity of the target edge 608.

For example, the connectivity score 702 based on connectivity can behighest to lowest in the following order: (1) when the target edge 608is the last matched edge 408; (2) when the target edge 608 is a childedge 704 of the last matched edge 408; (3) when the target edge 608 is asibling edge 706 of the last matched edge 408; and (4) when the targetedge 608 is a grandchild edge 708 of the last matched edge 408. Thechild edge 704 is defined as an edge immediately following and connectedto the last matched edge 408. The sibling edge 706 is defined as an edgestemming from the same edge as the last matched edge 408. The grandchildedge 708 is defined as an edge immediately following and connected to anedge immediately following and connected to the last matched edge 408.The connectivity score 702 when the target edge 608 is the last matchededge 408 can be the same as when the target edge 608 is the child edge704 of the last matched edge 408.

As a specific example, the following can be an example of a scoringscheme of the navigation system 100. For when the target edge 608 is thelast matched edge 408, the connectivity score 702 can be 10. For whenthe target edge 608 is the child edge 704 of the last matched edge 408,the connectivity score 702 can also be 10. For when the target edge 608is the sibling edge 706 of the last matched edge 408, the connectivityscore 702 can be 8. For when the target edge 608 is the grandchild edge708 of the last matched edge 408, the connectivity score 702 can be 5.The connectivity score 702 of the child edge 704 and the last matchededge 408 can be higher than the connectivity score 702 of the siblingedge 706. The connectivity score 702 of the sibling edge 706 can behigher than the connectivity score 702 of the grandchild edge 708. Inthis example, the higher the connectivity score 702 is, the higher theprobability that the target edge 608 falls on the actual location of thefirst device 106 of FIG. 1.

Referring now to FIG. 8, therein is shown an example of the topologicaltree 402 in a reachability scoring stage of operation of the navigationsystem 100. The edge score 606 of FIG. 6A based on reachability canincrease depending on whether the target edge 608 can be reached in timefrom the last matched edge 408 given the device speed 604. Areachability score 802 is defined as a subcomponent of the edge score606 that is based on reachability of the target edge 608. Reachabilityis a determination of whether a device can reach a current probablelocation 803 on the target edge 608 given the device speed 604 in thetime that has lapsed since the last location measurement from the lastposition detected by the device. The current probable location 803 isdefined as the closest point on the target edge 608 to the currentposition 410.

For example, the reachability score 802 based on reachability canincrease by a constant if the device speed 604 multiplied by a timedifference 804 plus an error threshold range is less than the distancerequired to travel between the last matched edge 408 and the target edge608 along a shortest path on the topological tree 402. The errorthreshold range can be equal to the locator error range 414 of FIG. 4,less than the locator error range 414, or greater than the locator errorrange 414. The time difference 804 is defined as how much time haspassed since the last matched edge 408 was matched by the navigationsystem 100 until when the target edge 608 is being considered as apotential matching edge for the current position 410. The device speed604 can be either the speed at the current position 410 or an averagespeed of some of the positions 404, such as the average speed at thelast three positions.

The target edge 608 is reachable if the device speed 604 multiplied bythe time difference 804 plus an error threshold range is less than thedistance required to travel between the last matched edge 408 and thetarget edge 608 along edges on the topological tree 402. As a specificexample, the reachability score 802 can be set to 1000 if the targetedge 608 is unreachable. The reachability score 802 can be set to 0 ifthe target edge 608 is reachable. In this example, the higher thereachability score 802 is, the lower the probability that the targetedge 608 falls on the actual location of the first device 106 of FIG. 1.

The edge score 606 of the target edge 608 can be based on the positionscore 614 of FIG. 6B, the heading score 618 of FIG. 6B, the connectivityscore 702 of FIG. 7, the reachability score 802, separation distance 612of FIG. 6A, edge heading 312 of FIG. 3, device heading 602 of FIG. 6A,or any combination thereof. As a specific example, the edge score 606can be described by Equation 1 below:[edge score 606]=100×[position score 614]+100×[heading score618]−[connectivity score 702]+[reachability score 802]+0.5×[separationdistance 612]+0.2×([edge heading 312]−[device heading 602])  Eq. 1

When the target edge 608 has the lowest score amongst all of the edges308 of FIG. 3 in the topological tree 402, the target edge 608 isdetermined by the navigation system 100 as a matched edge 806. Thematched edge 806 is defined as the edge determined by the navigationsystem 100 to contain the actual location of the first device 106.

Referring now to FIG. 9, therein is shown an example of a display forthe navigation system 100 of FIG. 1. Adjusted locations 902 and thepositions 404 can be shown on the display for the navigation system 100.The display can be shown on the first display interface 226 of FIG. 2 ofthe first device 106 of FIG. 1 or the second display interface 234 ofFIG. 2 of the second device 108 of FIG. 1.

The adjusted locations 902 are defined as estimated positions of thefirst device 106 after the positions 404 are map matched by an operationof the navigation system 100. Each of the adjusted locations 902 can bea location of one of the shape points 310 of FIG. 3 on the target edge608 of FIG. 6A determined to be the actual location of the first device106. Each of the adjusted locations 902 can be the closest one of theshape points 310 on the target edge 608. Each of the adjusted locations902 can be the closest point on the target edge 608 from each of thepositions 404.

FIG. 9 also shows a location indicator 904 on top of the last of theadjusted locations 902. The location indicator 904 is defined as an icondisplayable on either the first device 106 or the second device 108 forillustrating the map matched location of the first device 106.

It has been discovered that scoring the target edge 608 of thetopological tree 402 of FIG. 4 to determine the adjusted locations 902can correct the inaccuracies associated with the positions 404 receivedfrom the location unit 214 of FIG. 2. At times when the location unit214 has a weak signal or there are a lot of structures interfering witha location signal used by the location unit 214, the positions 404received from the location unit 214 would be inaccurate. The topologicaltree 402 limits down the potential candidates for the adjusted locations902 while the scoring of the target edge 608 from the topological tree402 can select the most likely candidate. Accordingly, scoring thetarget edge 608 of the topological tree 402 to determine the adjustedlocations 902 can correct the inaccuracies associated with the positions404 received from the location unit 214.

The navigation system 100 can calculate and display a travel route 906based on the adjusted locations 902. The travel route 906 is defined asa path calculated by the navigation system 100 for navigating to adestination. For example, the navigation system 100 can calculate anddisplay the travel route 906 based on the adjusted locations 902 when alocator signal strength 908 is low. The locator signal strength 908 isdefined as a signal power measurement of a locating or positioningsignal received by the location unit 214.

Referring now to FIG. 10, therein is shown a control flow of thenavigation system 100. The navigation system 100 can include a positionmodule 1002. The position module 1002 is for determining the locationinformation of a device in the navigation system 100. The positionmodule 1002 can function to receive the current position 410 of FIG. 4from the location unit 214 of FIG. 2 via the location interface 220 ofFIG. 2.

The navigation system 100 can include an expand module 1004. The expandmodule 1004 is a module of the navigation system 100 for constructing atopological tree. The expand module 1004 can be coupled to the positionmodule 1002.

The expand module 1004 can function to add the new edges 502 of FIG. 5to the topological tree 402 of FIG. 4 based on the current position 410from the road topology map 302 of FIG. 3, with the current position 410received from the position module 1002. The new edges 502 added can havethe shape points 310 of FIG. 3. The expand module 1004 can also functionto add the new edges 502 based on a density of the edges 308 of FIG. 3in the road topology map 302 near the current position 410, such as adensity of the edges 308 within the locator error range 414 of FIG. 4 ofthe current position 410.

The navigation system 100 can include a velocity module 1006. Thevelocity module 1006 is for determining a velocity vector of the firstdevice 106 of FIG. 1 from the positioning data of the first device 106received from the location unit 214. The velocity module 1006 can becoupled to the position module 1002. The velocity module 1006 canfunction to determine the device speed 604 of FIG. 6A at the currentposition 410, with the current position 410 received from the positionmodule 1002.

The expand module 1004 can be further coupled to the velocity module1006. The expand module 1004 can function to add the new edges 502 morefrequently when the device speed 604 changes, with the device speed 604determined by the velocity module 1006.

The navigation system 100 can include a remove module 1008. The removemodule 1008 is for reducing the size of a topological tree. The removemodule 1008 can be coupled to the position module 1002.

The remove module 1008 can function to remove the old edges 504 of FIG.5 from the topological tree 402 of FIG. 4 based on the current position410, with the current position 410 received from the position module1002. The remove module 1008 can also function to remove the old edges504 based on the locator error range 414.

The navigation system 100 can include a match module 1010. The matchmodule 1010 is for matching a target edge as the edge that the firstdevice 106 of FIG. 1 is currently on, from the edges in the roadtopology map 302. The match module 1010 can be coupled to the expandmodule 1004 and the remove module 1008.

The match module 1010 can function to determine the matched edge 806 ofFIG. 8 of the topological tree 402 based on the current position 410 andthe topological tree 402, with the topological tree 402 generated fromadding and removing of edges by the operation of the expand module 1004and the remove module 1008. The match module 1010 can determine thematched edge 806 by determining whether the matched edge 806 is a childedge, a sibling edge, or a grandchild edge of the last matched edge 408of FIG. 4. The match module 1010 can determine the matched edge 806 bycalculating the edge score 606 of FIG. 6A for the matched edge 806 basedon the distance between the current position 410 and the matched edge806, and comparing the edge score 606 with scores of other edges in thetopological tree 402.

The match module 1010 can further be coupled to the velocity module1006. The match module 1010 can determine the matched edge 806 bydetermining whether the matched edge 806 is reachable within the timedifference 804 of FIG. 8 from the last matched edge 408 given the devicespeed 604, with the device speed 604 received from the velocity module1006.

The navigation system 100 can include a heading module 1012. The headingmodule 1012 is for calculating the heading of the first device 106. Theheading module 1012 can be coupled to the position module 1002. Theheading module 1012 can function to determine the device heading 602 ofFIG. 6A corresponding to the current position 410, with the currentposition 410 received from the position module 1002. The device heading602 can be determined from any two consecutive points of the positions404 of FIG. 4 received from the location unit 214.

The match module 1010 can further be coupled to the heading module 1012.The match module 1010 can determine the matched edge 806 by calculatingthe edge score 606 based on the difference between the edge heading 312of FIG. 3 of the matched edge 806 and the device heading 602, andcomparing the edge score 606 with scores of other edges in thetopological tree 402, with the device heading 602 received from theheading module 1012.

The navigation system 100 can include a display module 1014. The displaymodule 1014 is for displaying navigation related information to the userof the navigation system 100. The display module 1014 can be coupled tothe match module 1010. The display module 1014 can function to calculatethe adjusted locations 902 of FIG. 9 based on the matched edge 806 fordisplaying on the first device 106, with the matched edge 806 receivedfrom the match module 1010.

The navigation system 100 can include a route module 1016. The routemodule 1016 is a module of the navigation system 100 for generating aroute from a current estimated position to a user-defined finaldestination. The route module 1016 can be coupled to the display module1014. The route module 1016 can function to generate the travel route906 of FIG. 9 based on the adjusted locations 902 when the locatorsignal strength 908 of FIG. 9 is low, with the adjusted locations 902received from the display module 1014. The route module 1016 can be fordetermining whether the adjusted locations 902 have deviated from thetravel route 906.

The display module 1014 can function to display the travel route 906 onthe first device 106, with the travel route 906 generated from the routemodule 1016. The display module 1014 can confirm that the adjustedlocations 902 have deviated from the travel route 906 by displaying theadjusted locations 902 or modifying the location indicator 904 of FIG.9.

The first software 218 of FIG. 2 of the first device 106 of FIG. 1 caninclude the navigation system 100. For example, the first software 218can include the position module 1002, the expand module 1004, the removemodule 1008, the match module 1010, and the display module 1014.

The first control unit 206 of FIG. 2 can execute the first software 218for the position module 1002 to receive the current position 410. Thefirst control unit 206 can execute the first software 218 for the expandmodule 1004 to add the new edges 502 to the topological tree 402 basedon the current position 410 from the road topology map 302. The firstcontrol unit 206 can execute the first software 218 for the removemodule 1008 to remove the old edges 504 from the topological tree 402based on the current position 410.

The first control unit 206 can execute the first software 218 for thematch module 1010 to determine the matched edge 806 of the topologicaltree 402 based on the current position 410 and the topological tree 402.The first control unit 206 can execute the first software 218 for thedisplay module 1014 to display the adjusted locations 902 based on thenewly matched edge on the first device 106.

The first control unit 206 can execute the first display interface 226of FIG. 2 to display the adjusted locations 902, the location indicator904, or a combination thereof. The second software 236 of FIG. 2 of thesecond device 108 of FIG. 1 can include the navigation system 100. Forexample, the second software 236 can include the position module 1002,the expand module 1004, the remove module 1008, the match module 1010,and the display module 1014.

The second control unit 228 of FIG. 2 can execute the second software236 for the position module 1002 to receive the current position 410.The second control unit 228 can execute the second software 236 for theexpand module 1004 to add the new edges 502 to the topological tree 402based on the current position 410 from the road topology map 302. Thesecond control unit 228 can execute the second software 236 for theremove module 1008 to remove the old edges 504 from the topological tree402 based on the current position 410. The second control unit 228 canexecute the second software 236 for the match module 1010 to determinethe matched edge 806 of the topological tree 402 based on the currentposition 410 and the topological tree 402. The second control unit 228can execute the second software 236 for the display module 1014 todisplay the adjusted locations 902 based on the newly matched edge onthe first device 106. The second control unit 228 can execute the seconddisplay interface 234 of FIG. 2 to display the adjusted locations 902,the location indicator 904, or a combination thereof.

The navigation system 100 can be partitioned between the first software218 and the second software 236. For example, the second software 236can include the expand module 1004, the remove module 1008, the matchmodule 1010, and the display module 1014. The second control unit 228can execute modules partitioned on the second software 236 as previouslydescribed.

The first software 218 can include the position module 1002. Based onthe size of the first storage unit 208 of FIG. 2, the first software 218can include additional modules of the navigation system 100. The firstcontrol unit 206 can execute the modules partitioned on the firstsoftware 218 as previously described.

The first user interface 212 of FIG. 2 can receive the angle threshold620 of FIG. 6B and the distance threshold 616 of FIG. 6B from the user,the navigation system 100, or a combination thereof for the match module1010, for example. The first control unit 206 can operate the firstcommunication unit 210 of FIG. 2 to send the adjusted locations 902 tothe second device 108. The first control unit 206 can operate the firstsoftware 218 to operate the location unit 214.

The second communication unit 230 of FIG. 2 can send the road topologymap 302 to the first device 106 through the communication path 110 ofFIG. 1. The adjusted locations 902, the location indicator 904, or acombination thereof can be displayed on the first display interface 226and the second device 108.

The navigation system 100 describes the module functions or order as anexample. The modules can be partitioned differently. For example, theexpand module 1004 and the remove module 1008. Each of the modules canoperate individually and independently of the other modules.

Furthermore, data generated in one module can be used by another modulewithout being directly coupled to each other. For example, the removemodule 1008 can receive the current position 410 from the positionmodule 1002.

The physical transformation from displaying adjusted locations 902 basedon the matched edge 806 results in movement in the physical world, suchas people using the first device 106, the vehicle, or a combinationthereof, based on the operation of the navigation system 100. The userof the navigation system 100 can display the adjusted locations 902 andthe location indicator 904 as a user is navigating in a real-worldvehicular pathway. The travel route 906 can be used in conjunction ofthe adjusted locations 902 to best aid users of the navigation system100 move to their intended destinations. As the movement in the physicalworld occurs, the movement itself creates additional information that isconverted back to the current position 410 for the continued operationof the navigation system 100 and to continue the movement in thephysical world.

Referring now to FIG. 11, therein is shown a specific example of adecision flow describing the navigation system 100 of FIG. 1. Thedecision flow includes: initiating the topological tree 402 of FIG. 4 ina block 1102 with the expand module 1004 of FIG. 10; re-creating thetopological tree 402 when the root edge 406 of FIG. 4 is not within thetermination condition 412 of FIG. 4 in a block 1104 with the expandmodule 1004 and the remove module 1008 of FIG. 10; updating thetopological tree 402 in a block 1106 with the expand module 1004 and theremove module 1008; determining a deviation from an assigned route whenthe navigation system 100 is in navigation mode in a block 1108 with theroute module 1016 of FIG. 10; confirming the deviation in a block 1110with the display module 1014 of FIG. 10; calculating the adjustedlocations 902 of FIG. 9 when the navigation system 100 is not innavigation mode in a block 1112 with the match module 1010 of FIG. 10;and updating the location indicator 904 of FIG. 9 on a display device,such as on the first device 106 of FIG. 1 or the second device 108 ofFIG. 1 in a block 1114 with the display module 1014.

Block 1104 can be used in a feedback loop in a pre-set time interval,such as every second. When the current position 410 is a thresholddistance away from the topological tree 402 or when the edge score 606for every edge in the topological tree 402 is larger than a thresholdscore, the block 1104 can recreate the topological tree 402. Forexample, GPS recovery from a long time drifting or no-GPS signal areafor a long time can lead to a big jump in GPS position. At such a time,the topological tree 402 can become invalid, and the block 1104 can beresponsible to create a new instance of the topological tree 402 basedon the current position 410.

Referring now to FIG. 12, therein is shown a flow chart of a method 1200of operation of the navigation system 100 of FIG. 1 in a furtherembodiment of the present invention. The method 1200 includes: receivinga current position for locating a device, in a block 1202; adding a newedge from a road topology map to a topological tree based on the currentposition, in a block 1204; removing an old edge from the topologicaltree based on the current position, in a block 1206; determining amatched edge of the topological tree based on the current position andthe topological tree, in a block 1208; and calculating an adjustedlocation based on the matched edge for displaying on the device, in ablock 1210.

The resulting method, process, apparatus, device, product, and/or systemis straightforward, cost-effective, uncomplicated, highly versatile,accurate, sensitive, and effective, and can be implemented by adaptingknown components for ready, efficient, and economical manufacturing,application, and utilization. Another important aspect of the presentinvention is that it valuably supports and services the historical trendof reducing costs, simplifying systems, and increasing performance.These and other valuable aspects of the present invention consequentlyfurther the state of the technology to at least the next level.

While the invention has been described in conjunction with a specificbest mode, it is to be understood that many alternatives, modifications,and variations will be apparent to those skilled in the art in light ofthe aforegoing description. Accordingly, it is intended to embrace allsuch alternatives, modifications, and variations that fall within thescope of the included claims. All matters hithertofore set forth hereinor shown in the accompanying drawings are to be interpreted in anillustrative and non-limiting sense.

What is claimed is:
 1. A method of operation of a navigation systemcomprising: receiving a current position for locating a device; adding anew edge from a road topology map to a topological tree based on an edgeof the road topology map corresponding to the current position, wherein:the road topology map is for representing segments of real-world vehiclepathways, the topological tree is for dynamically representing a set ofedges in the road topology map corresponding to the current position;removing an old edge outside of a termination condition with nodescendant edges within the termination condition from the topologicaltree based on the current position; determining a matched edge of thetopological tree based on the current position and the topological tree;and calculating with a control unit an adjusted location based on thematched edge for mapping the current position to the adjusted locationon the matched edge.
 2. The method as claimed in claim 1 whereinremoving the old edge includes removing the old edge when the old edgeis outside of a locator error range.
 3. The method as claimed in claim 1wherein adding the new edge includes adding the new edge based on adensity of edges in the road topology map near the current position. 4.The method as claimed in claim 1 further comprising: determining adevice speed at the current position; and wherein: adding the new edgeincludes adding the new edge more frequently when the device speedchanges compared to when the device speed has not changed.
 5. The methodas claimed in claim 1 further comprising: generating a travel routebased on the adjusted location when a locator signal strength is low;and wherein: displaying the adjusted location includes displaying thetravel route on the first device.
 6. A method of operation of anavigation system comprising: receiving a current position for locatinga device; adding a new edge having shape points from a road topology mapto a topological tree based on an edge of the road topology mapcorresponding to the current position, wherein: the road topology map isfor representing segments of real-world vehicle pathways, thetopological tree is for dynamically representing a set of edges in theroad topology map corresponding to the current position; removing an oldedge outside of a termination condition with no descendant edges withinthe termination condition from the topological tree based on the currentposition; determining a matched edge of the topological tree based onthe current position and the topological tree; and calculating with acontrol unit an adjusted location based on the matched edge for mappingthe current position to the adjusted location on the matched edge. 7.The method as claimed in claim 6 further comprising: determining adevice speed at the current position; and wherein: determining thematched edge includes determining whether the matched edge is reachablewithin a time difference from a last matched edge given a device speed.8. The method as claimed in claim 6 wherein determining the matched edgeincludes determining whether the matched edge is a child edge, a siblingedge, or a grandchild edge of the last matched edge.
 9. The method asclaimed in claim 6 wherein determining the matched edge includescalculating an edge score for the matched edge based on the distancebetween the current position and the matched edge.
 10. The method asclaimed in claim 6 further comprising: determining a device headingcorresponding to the current position; and wherein: determining thematched edge includes calculating the edge score based on a differenceof an edge heading of the matched edge and the device heading.
 11. Anavigation system comprising: a storage unit including memory andconfigured to provide access to software; a control unit including atleast one processor, coupled to the storage unit, configured to executethe software to: receive a current position for locating a device; add anew edge from a road topology map to a topological tree based on an edgeof the road topology map corresponding to the current position, wherein:the road topology map is for representing segments of real-world vehiclepathways, the topological tree is for dynamically representing a set ofedges in the road topology map corresponding to the current position;remove an old edge outside of a termination condition with no descendantedges within the termination condition from the topological tree basedon the current position; determine a matched edge of the topologicaltree based on the current position and the topological tree; andcalculate an adjusted location based on the matched edge for mapping thecurrent position to the adjusted location on the matched edge.
 12. Thesystem as claimed in claim 11 wherein the control unit is configured tofurther execute the software to remove the old edge based on a locatorerror range.
 13. The system as claimed in claim 11 wherein the controlunit is configured to further execute the software to add the new edgebased on a density of edges in the road topology map near the currentposition.
 14. The system as claimed in claim 11 wherein the control unitis configured to further execute the software to: determine a devicespeed at the current position; and add the new edge more frequently whenthe device speed changes compared to when the device speed has notchanged.
 15. The system as claimed in claim 11 wherein the control unitis configured to further execute the software to: generate a travelroute based on the adjusted location when a locator signal strength islow; and display the travel route on the first device.
 16. The system asclaimed in claim 11 wherein the control unit is configured to furtherexecute the software to add the new edge having shape points.
 17. Thesystem as claimed in claim 16 wherein the control unit is configured tofurther execute the software to: determine a device speed at the currentposition; and determine whether the matched edge is reachable within atime difference from a last matched edge given the device speed.
 18. Thesystem as claimed in claim 16 wherein the control unit is configured tofurther execute the software to determine whether the matched edge is achild edge, a sibling edge, or a grandchild edge of the last matchededge.
 19. The system as claimed in claim 16 wherein the control unit isconfigured to further execute the software to calculate an edge scorefor the matched edge based on the distance between the current positionand the matched edge.
 20. The system as claimed in claim 16 wherein thecontrol unit is configured to further execute the software to: determinea device heading corresponding to the current position; and calculatethe edge score based on a difference of an edge heading of the matchededge and the device heading.